package cn.com.headfree.log.service;

import java.sql.SQLException;
import java.util.Date;
import java.util.List;

import com.gta.edu.sdk.base.service.IBaseService;
import com.gta.edu.sdk.common.dto.ChartDto;
import com.gta.edu.sdk.common.dto.Page;
import com.gta.edu.sdk.common.dto.Sort;
import com.gta.edu.sdk.log.entity.TLogWarn;
import com.gta.edu.sdk.log.entity.TSysLogInfo;

import cn.com.headfree.log.dto.ChartLogDto;

public interface ILogService extends IBaseService<TSysLogInfo>{

	/**
	 * @description 保存日志记录
	 * @author fengya
	 * @date 2020年9月1日 上午9:17:55
	 * @param logRecords
	 * void
	 */
	void saveLogRecord(List<?> logRecords);
	
	/**
	 * @description 分页查询日志记录
	 * @author fengya
	 * @date 2020年9月1日 上午11:06:10
	 * @param logInfo
	 * @param page
	 * void
	 */
	void findPageLog(TSysLogInfo logInfo,Date startTime,Date endTime,Sort sort, Page<TSysLogInfo> page);
	
	/**
	 * @description 根据系统模块汇总操作记录量
	 * @author fengya
	 * @date 2020年9月29日 上午11:06:16
	 * @param sysCode
	 * @param startTime
	 * @param endTime
	 * @return
	 * List<ChartDto>
	 */
	List<ChartDto> logOpSummary(String sysCode,Date startTime,Date endTime);
	
	/**
	 * @description 日志操作异常统计图
	 * @author fengya
	 * @date 2020年9月29日 上午11:10:50
	 * @param sysCode
	 * @param startTime
	 * @param endTime
	 * @return
	 * List<ChartDto>
	 */
	List<ChartLogDto> logOpExceptionSummary(String sysCode,Date startTime,Date endTime);
	
	/**
	 * @description 查询日志记录总数
	 * @author fengya
	 * @date 2020年9月29日 下午3:32:24
	 * @return
	 * @throws SQLException
	 * int
	 */
	int getLogRecordNum() throws SQLException;
	
	/**
	 * @description 分页查询日志告警记录
	 * @author fengya
	 * @date 2020年9月29日 下午4:01:27
	 * @param sort
	 * @param page
	 * void
	 */
	void findPageLogWarn(Sort sort, Page<TLogWarn> page);
	
	/**
	 * @description 把limitDate日期之前的日志进行备份
	 * @author fengya
	 * @date 2020年9月29日 下午4:24:34
	 * @param date
	 * void
	 */
	void logBack(Date limitDate,int flag);
	
	/**
	 * @description 清空数据记录
	 * @author fengya
	 * @date 2020年9月29日 下午4:55:59
	 * void
	 */
	void clearRecord();
}
